package cn.getech.data.metadata.entity.meta;

import cn.getech.data.intelligence.common.utils.DateUtils;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.util.Date;
import lombok.Data;

@Data
@TableName(value = "collection_task_log")
public class CollectionTaskLog {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 任务名称
     */
    @TableField(value = "task_id")
    private Long taskId;

    /**
     * 任务名称
     */
    @TableField(value = "task_name")
    private String taskName;

    /**
     * 0 手动采集 1自动采集 2接口
     */
    @TableField(value = "task_type")
    private Integer taskType;

    /**
     * 消耗秒数
     */
    @TableField(value = "consumer_seconds")
    private Long consumerSeconds;

    /**
     * 数据类型
     */
    @TableField(value = "source_type")
    private String sourceType;

    /**
     * 所属系统id
     */
    @TableField(value = "own_system")
    private Integer ownSystem;

    /**
     * 所属模块id
     */
    @TableField(value = "own_module")
    private Integer ownModule;

    /**
     * 所属模块负责人id
     */
    @TableField(value = "own_module_leader")
    private Long ownModuleLeader;

    /**
     * 任务负责人，编辑一次变成当前登录人
     */
    @TableField(value = "task_leader")
    private Long taskLeader;

    /**
     * 任务执行人，导入一次变成当前登录人
     */
    @TableField(value = "task_run_leader")
    private Long taskRunLeader;
    @TableField(exist = false)
    private String taskRunLeaderName;

    /**
     * 上一次运行结果 0 未导入 1导入中  导入成功
     */
    @TableField(value = "run_status")
    private Integer runStatus;

    /**
     * 是否启用 0 未启用 1 启用
     */
    @TableField(value = "run_enable")
    private Integer runEnable;

    /**
     * 数据源id
     */
    @TableField(value = "source_id")
    private Long sourceId;

    /**
     * 调度方式 1定时 2 循环
     */
    @TableField(value = "run_type")
    private Integer runType;

    /**
     * 任务调度配置
     */
    @TableField(value = "task_config")
    private String taskConfig;

    /**
     * 运行时间
     */
    @TableField(value = "run_time")
    private Date runTime;

    /**
     * 运行计划
     */
    @TableField(value = "run_plan")
    private String runPlan;

    /**
     * 创建理时间
     */
    @TableField(value = "create_time")
    private Date createTime;

    /**
     * 创建人
     */
    @TableField(value = "create_user")
    private Long createUser;

    /**
     * 更新人
     */
    @TableField(value = "update_user")
    private Long updateUser;

    /**
     * 更新时间
     */
    @TableField(value = "update_time")
    private Date updateTime;

    /**
     * 删除 1 是,0 否
     */
    @TableField(value = "delete_flag")
    private Integer deleteFlag;

    @TableField(value = "version")
    private String version;
    /**
     * 数据库名称
     */
    @TableField(value = "db_name")
    private String dbName;

    public void preSave(Long userId) {
        Date now = new Date();
        if (this.id == null) {
            this.updateUser = userId;
            this.createTime = now;
        }
        this.version="SL"+ DateUtils.format(now,"yyyyMMddHHmmss");
        this.updateUser = userId;
        this.taskLeader = userId;
        this.taskRunLeader = userId;
        this.updateTime = now;
    }
}